package chapter02

import (
	"gin_project/chapter05"
	"github.com/gin-gonic/gin"
)

func Router(chap02 *gin.RouterGroup) {
	chap02.GET("/user", User)                                         //调用包chapter02下的User函数
	chap02.GET("/user_struct", chapter05.MiddleWare3, UserInfoStruct) //局部使用中间件
	//这是自定义中间件3--start
	//这是自定义中间件3--end

	chap02.GET("/arr_struct", ArrStruct)
	chap02.GET("/map_struct", MapStruct)
	//前端传参到后端-param
	chap02.GET("/param1/:id", Param1) //注意这里的url":id",带参数的路由，路径中直接加上参数，使用:来占位，冒号是强制性的，必须要指定路径才行
	chap02.GET("/param2/*id", Param2) //使用*来占位可以不用匹配这个路径。/param2后面传不传参数都能匹配到路由，而冒号则必须传。
	//前端传参到后端-query&DefaultQuery
	chap02.GET("/query", GetQueryDate) //在路由上直接使用参数名，通过后端query来获取。不需要在路由上匹配。/query?id=1001。注意问号后面添加参数
	//传数组，query_arr
	chap02.GET("/query_arr", GetQueryArrDate)
	//传map,query_map
	chap02.GET("/query_map", GetQueryMapDate)
	//用户注册信息传递到后端
	chap02.GET("/to_user_add", ToUserAdd)
	chap02.POST("/do_user_add", DoUserAdd)
	//defaultForm
	chap02.GET("/to_user_add2", ToUserAdd2)
	chap02.POST("/do_user_add2", DoUserAdd2)
	//shouldBind
	chap02.GET("/to_user_add4", ToUserAdd4)
	chap02.POST("/do_user_add4", DoUserAdd4)

	//upload 单个文件
	chap02.GET("/test_to_upload", ToUpload)
	chap02.POST("/test_do_upload", DoUpload)
	//upload 多个文件
	chap02.GET("/test_to_upload1", ToUpload1)
	chap02.POST("/test_do_upload1", DoUpload1)

	//Json格式
	chap02.GET("/test_json", OutJson)
	//JsonAscii格式
	chap02.GET("/test_json_ascii", OutJsonAscii)
}
